Over the years, the computer hardware and software industries have become highly developed. With the sophistication of the hardware-based systems, software-based systems have advanced rapidly. So much so that software demands and software application programs tend to drive or push hardware advancements now. Examples of software application programs include accounting or tax software programs, database or file management software programs, interactive computer game programs, industrial design programs, document retrieval programs, and inventory control programs. Numerous other types of application programs for various industries, however, also exist and can be and continue to be developed.
A conventional computer or computer system now generally includes at least one main or central processing unit ("CPU"), at least one random access memory ("RAM") connected to the CPU, at least one optical storage device (e.g., a compact-disk read-only-memory ("CD-ROM")) positioned in communication with the RAM, and a hard disk drive positioned in communication with the RAM. The CD-ROMs of computer systems have been developed to beneficially store large amounts of data which is often needed for sophisticated software application programs. Because CD-ROMs are traditionally slow when the CPU of a computer system attempts to read even portions of the large amount of data stored in the CD-ROM, various caching processes which attempt to speed up the retrieval of data from the CD-ROM have been developed over the years.
A caching space is simply a smaller area, often a much smaller area, of data storage in a memory that can be retrieved at a much faster speed to the RAM than directly from a CD-ROM or other types of slower memory. The caching space has retrieved and stored data (e.g., conventionally highly used data) in anticipation of what will be needed by a software application or the end user. The caching for rotating data storage media such as a CD-ROM is conventionally a software or firmware application. The caching for conventional memory, on the other hand, usually involves electronic circuitry or hardware solutions.
As an example, enhancing retrieval speeds from CD-ROMs is of particular interest to software application developers. These developers often develop software applications that require extensive use of software or data stored in CD-ROM. These software developers, however, continue to look for and need ways to more effectively use and handle the large amount of data often needed or desired from optical storage devices.
An example of a caching system is described in U.S. Pat. No. 5,305,389 by Palmer titled "Predictive Cache System." This patent describes a caching system that learns to "fetch" data. Patterns of access to data objects are stored in cache memory. The stored patterns are generated by analysis of prior object accesses when the data processing system was processing in a like context. The prediction of which data objects to fetch from a secondary memory is based upon the order of stored patterns of previous accesses. Although this may be beneficial over some prior caching systems, a predictive pattern-type cache system based upon this type of ordering scheme falls short in an attempt to substantially assist software application developers in maximizing or optimizing speed and storage space constraints of the particular software application program which is being developed.